import axios from 'axios'
import { request } from './index'

/**
 * 获取用户个人信息
 * @returns {Promise} 返回用户个人信息
 */
export const getUserProfile = () => {
  return request.get('/v1/user/profile')
}

/**
 * 更新用户个人信息
 * @param {Object} data 用户信息数据
 * @returns {Promise} 返回更新结果
 */
export const updateUserProfile = (data) => {
  return request.put('/v1/user/profile', data)
}

/**
 * 修改用户密码
 * @param {Object} data 包含旧密码和新密码的对象
 * @returns {Promise} 返回修改结果
 */
export const changeUserPassword = (data) => {
  return request.put('/v1/user/password', data)
}

/**
 * 上传用户头像
 * @param {FormData} formData 包含头像文件的FormData对象
 * @returns {Promise} 返回上传结果
 */
export const uploadUserAvatar = (formData) => {
  return request.post('/v1/user/avatar', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 获取用户列表
 * @param {Object} params 分页参数
 * @returns {Promise} 返回用户列表
 */
export const getUserList = (params) => {
  return request.get('/v1/user', { params })
}

/**
 * 创建用户
 * @param {Object} data 用户数据
 * @returns {Promise} 返回创建结果
 */
export const createUser = (data) => {
  return request.post('/v1/user', data)
}

/**
 * 更新用户
 * @param {Number} userId 用户ID
 * @param {Object} data 更新数据
 * @returns {Promise} 返回更新结果
 */
export const updateUser = (userId, data) => {
  return request.put(`/v1/user/${userId}`, data)
}

/**
 * 删除用户
 * @param {Number} userId 用户ID
 * @returns {Promise} 返回删除结果
 */
export const deleteUser = (userId) => {
  return request.delete(`/v1/user/${userId}`)
}

/**
 * 获取角色列表
 * @param {Object} params 分页和搜索参数
 * @returns {Promise} 返回角色列表
 */
export const getRoleList = (params) => {
  return request.get('/v1/roles', { params })
}

/**
 * 创建角色
 * @param {Object} data 角色数据
 * @returns {Promise} 返回创建结果
 */
export const createRole = (data) => {
  return request.post('/v1/roles', data)
}

/**
 * 更新角色
 * @param {Number} roleId 角色ID
 * @param {Object} data 更新数据
 * @returns {Promise} 返回更新结果
 */
export const updateRole = (roleId, data) => {
  return request.put(`/v1/roles/${roleId}`, data)
}

/**
 * 删除角色
 * @param {Number} roleId 角色ID
 * @returns {Promise} 返回删除结果
 */
export const deleteRole = (roleId) => {
  return request.delete(`/v1/roles/${roleId}`)
}

/**
 * 获取权限列表
 * @param {Object} params 分页和搜索参数
 * @returns {Promise} 返回权限列表
 */
export const getPermissionList = (params) => {
  return request.get('/v1/permissions', { params })
}

/**
 * 创建权限
 * @param {Object} data 权限数据
 * @returns {Promise} 返回创建结果
 */
export const createPermission = (data) => {
  return request.post('/v1/permissions', data)
}

/**
 * 更新权限
 * @param {Number} permissionId 权限ID
 * @param {Object} data 更新数据
 * @returns {Promise} 返回更新结果
 */
export const updatePermission = (permissionId, data) => {
  return request.put(`/v1/permissions/${permissionId}`, data)
}

/**
 * 删除权限
 * @param {Number} permissionId 权限ID
 * @returns {Promise} 返回删除结果
 */
export const deletePermission = (permissionId) => {
  return request.delete(`/v1/permissions/${permissionId}`)
}

/**
 * 检查响应状态
 * @param {Object} response API响应对象
 * @returns {Boolean} 是否成功响应 
 */
export const isSuccessResponse = (response) => {
  return response && response.data && response.data.code === 200
}

